package www.houdoudou.com.customer;

import www.houdoudou.com.supplier.IndexManagement;
import www.houdoudou.com.supplier.ProductManagement;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class PullIndexesAndProducts {

	  public static JSONObject  pull(String jsonData){
		  JSONObject result = new JSONObject();
    	  JSONArray Indexes= new JSONArray();
    	  JSONObject jsonfrom= JSONObject.fromObject(jsonData);
    	  /*---------目录-----------*/
		   JSONObject jsonInner1=jsonfrom;
		   jsonInner1.put("FunctionCode", 5);
		   jsonInner1.put("Query_Way", 2); 
		   JSONObject jsonInner1B= IndexManagement.managerIndex(jsonInner1.toString());
    	   if(!jsonInner1B.getBoolean("ActionStatus")){
    		   result=jsonInner1B; return result;
    	         }else{
    	        	         JSONArray innerIndexes=jsonInner1B.getJSONArray("Indexes");
    	        	         
    	        	         System.out.println("-----innerIndexes-----    "+innerIndexes.toString());
    	        	           for(int i=0;i<innerIndexes.size();i++){
    	        	        	   //目录内上架的产品为空则不添加。
    	        	        	   boolean isAddBackIndex=true;
    	        	        	   JSONObject backIndex= new JSONObject();
    	        	        	   
    	        	        	   backIndex.put("Index_Name", innerIndexes.getJSONObject(i).getString("Index_Name"));
    	        	        	   int Index_ID= innerIndexes.getJSONObject(i).getInt("Index_ID");
    	        	        	   /*---------产品-----------*/
    	        	        	   JSONObject jsonInner2=jsonfrom;
    	        	   		        jsonInner2.put("FunctionCode", 5);
    	        	   		        jsonInner2.put("Query_Way", 2); //表示查询上架的产品和自配置。
    	        	   		        jsonInner2.put("Index_ID", Index_ID);
    	        	   		     System.out.println("-----jsonInner2-----    "+jsonInner2.toString());
    	        	   		        JSONObject jsonInner2B=ProductManagement.manageProduct(jsonInner2.toString());
    	        	   		        System.out.println("-----jsonInner2B-----    "+jsonInner2B.toString());
    	        	        	    if(!jsonInner2B.getBoolean("ActionStatus")){  
    	        	        	    	isAddBackIndex=false;  continue;
    	        	        	    }else{
    	        	        	    	JSONArray innerProducts=jsonInner2B.getJSONArray("Products");
    	        	        	    	       //根据产品里面 Branches是否为空，删除多余的产品 	    		
    	        	        	    		for(int j=0;j<innerProducts.size();j++){	        	        	    			
    	        	        	    			boolean isDeleteProduct=innerProducts.getJSONObject(j).getJSONArray("Branches").size()<=0;
    	        	        	    		    if(isDeleteProduct){ 
    	        	        	    		    	innerProducts.remove(j);
    	        	        	    		    }else{ //添加我要的数据，Selected_Num
    	        	        	    		    	innerProducts.getJSONObject(j).put("Selected_Num_InProduct", 0); //表示一个产品所有规格的数量和。此数据仅用于提示。
    	        	        	    		    	innerProducts.getJSONObject(j).put("Selected_Branch_Num", 1);  //一条订单产品记录，包含的数据。
    	        	        	    		    	innerProducts.getJSONObject(j).put("Selected_Branch_ID",0);   // 一条订单产品记录，包含的数据。默认为第一条自配置的ID，详情页会自动点击第一个子配置
    	        	        	    		    	innerProducts.getJSONObject(j).put("Selected_Branch_Name","");
    	        	        	    		    	innerProducts.getJSONObject(j).put("Selected_Branch_Money", 0f);
    	        	        	    		    	innerProducts.getJSONObject(j).put("Selected_Branch_volume", 0);
    	        	        	    		    	innerProducts.getJSONObject(j).put("Selected_Branch_UnitPrice", 0f);
    	        	        	    		    	
    	        	        	    		    }
    	        	        	    		}
    	        	    		
    	        	        	    		// 判断,是否加载该分类
        	        	        	    	if(innerProducts.size()<=0){ 
        	        	        	    		isAddBackIndex=false; continue;
        	        	        	    	  } else{
        	        	        	    		  backIndex.put("Products", innerProducts);
        	        	        	    		  backIndex.put("Products_Num", innerProducts.size()); 
        	        	        	    		  backIndex.put("Selected_Num_InIndex", 0); //此数据表示，一个目录内选择的规格数量。
        	        	        	    	  }                                                     
    	        	        	    	
    	        	        	    }
    	        	        	    //判断是否添加此目录。
    	        	        	   if(isAddBackIndex) Indexes.add(backIndex);
    	        	           }// 目录循环
    	                      result.put("Indexes", Indexes);
    	        	     	  result.put("ActionStatus", true);
    	        	 		  result.put("ErrorInfo", "查询成功");
    	        	    		        	
    	         }//目录查询有效
    	 
    		return result;
	  }
	
	
}
